package com.taxi.driver.common;

import android.support.multidex.MultiDex;

import com.facebook.stetho.Stetho;
import com.iflytek.cloud.Setting;
import com.mikepenz.iconics.Iconics;
import com.qianxx.base.BaseApplication;
import com.qianxx.network.RetrofitRequestTool;
import com.qianxx.utils.Logger;
import com.taxi.driver.BuildConfig;
import com.taxi.driver.R;
import com.taxi.driver.api.ApiConfig;
import com.taxi.driver.common.dagger.AppComponent;
import com.taxi.driver.common.dagger.AppModule;
import com.taxi.driver.common.dagger.DaggerAppComponent;
import com.taxi.driver.module.main.MainActivity;
import com.taxi.driver.util.BuglyUtils;
import com.umeng.commonsdk.UMConfigure;

import org.litepal.LitePal;


/**
 * 功能描述：
 */
public class Application extends BaseApplication {

    public static AppComponent getAppComponent() {
        return sAppComponent;
    }

    private static AppComponent sAppComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        MultiDex.install(this); //方法数超过最大值，需要分包

        // 初始化应用参数
        AppConfig.initConfig(getResources());
        ApiConfig.setHost(AppConfig.HOST);
        RetrofitRequestTool.setKey(AppConfig.REQUEST_KEY);
        RetrofitRequestTool.setAppid(AppConfig.YUEYUE_APPKEY);

        sAppComponent = DaggerAppComponent.builder()
                .appModule(new AppModule(this))
                .build();
        sAppComponent.inject(this);
        initConfig();
    }

    private void initConfig() {
        // 是否开启日志打印：true-打开、false-关闭
        Logger.setDevelopMode(BuildConfig.DEBUG);
        Setting.setShowLog(BuildConfig.DEBUG);
        // 初始化 Stetho 调试桥
        if (BuildConfig.DEBUG) Stetho.initializeWithDefaults(this);
        // 使用字体图片
        Iconics.init(getApplicationContext());
        Iconics.registerFont(new CustomFont());
        Iconics.registerFont(new DriverFont());
        // 初始化 Bugly 测试版增加bugly
//        if (!BuildConfig.DEBUG)
            BuglyUtils.initDefault(this, AppConfig.BUGLY_ID, R.drawable.ic_launcher, MainActivity.class);
        // 初始化 LitePal
        LitePal.initialize(this);
        //初始化友盟统计
        UMConfigure.init(this, getResources().getString(R.string.umeng_id), "Umeng", UMConfigure.DEVICE_TYPE_PHONE, null);
    }
}
